Microcontrollers can be used for controlling other devices. Examples devices that can be controlled by microcontrollers include analog to digital converters, digital to analog converters, input and output ports, direct memory access (DMA) controllers, and memories.
A DMA controller can be used to transfer data between a memory device and another device, such as one controlled by a microcontroller, and thus can enable high speed data transfer with little central processing unit (CPU) involvement. The DMA controller may move data between memories and devices using one or more physical DMA channels and may support a number of independent and parallel data transfers.
Physical DMA channels may be shared among one or more devices and the DMA controllers may adopt a policy of prioritizing and scheduling for assigning time slots of physical DMA channels among the devices that share the same physical DMA channel.